是的,今天依然是強迫自己跟著教程學習的一天,在經歷一些人生挫折後,變得厭世易感冒是很正常不過的事情,失敗與挫折除了讓自己的心靈變得更加脆弱外,還要花比普通人更多的時間在運動上,才不會身體虛弱看起來像個容易欺負的廢物。但好在只要每天做一點,就能有所進步,那我們開始吧!
材料:
from machine import ADC
import time
# 建立 A0 腳位的 ADC 物件, 並命名為 adc
adc = ADC(0)
while True:
# 用 read() 方法從 A0 號腳位讀取 ADC 轉換後的數值
# 然後將讀到的值用 print() 輸出
print(adc.read())
# 暫停 0.05 秒
time.sleep(0.05)
我們會發現,在有水停留在雨水感測板子上時,數值會下降,而數值介於0~1024之間,也就是說,下雨越大,數值越小。但是,身為不愛多一層思考,喜歡簡單明瞭的懶人,這樣的結果令人十分不滿意。
那我們可以怎麼做呢?
其實,也很簡單,就是1024扣掉獲得數值就可以了。
接著,便是丟上網路,變成監控數據,看起來質感升級的時刻。我們再一次使用Adafruit網站: https://io.adafruit.com
到Dashboard頁面點擊 並命名事件名稱:
點擊Creat創建。
點擊剛剛創建的名稱,進入頁面,我們點選 設定
接著,點取Creat new block
我們會看見視圖畫選擇,我選了名為Guage的選項,勾選事件
進入下一階段,將Max value換成1024值,點選Creat block,就完成了設置。
接下來又是召喚網路連接的時刻,以下是程式碼:
from machine import ADC
import time, network, urequests
# 連線 Wifi 網路
sta_if = network.WLAN(network.STA_IF)
sta_if.active(True)
sta_if.connect("你的網路名稱", "網路密碼")
while not sta_if.isconnected():
pass
print("Wifi已連上")
aio_username = "Adafruit帳號"
aio_key = "Adafruit金鑰"
aio_feed = "rain(創建事件名稱)"
# 建立 A0 腳位的 ADC 物件, 並命名為 adc
adc = ADC(0)
while True:
# 讀取雨水感測器經過 ADC 轉換後的數值
value = adc.read()
if value < 700: # 依照 Lab09 的測試, 低於 700 表示有下雨
# 雨水越多, ADC 值越低, 所以用最大值 1024 減 ADC 值,
# 以便將資料反轉為雨水越多, 數值越高
data = {"value": 1024-value}
else:
# 沒下雨的話就送出 0
data = {"value": 0}
# 設定 Adafruit IO 上傳資料的 API 網址
url = ("https://io.adafruit.com/api/v2/" + aio_username +
"/feeds/" + aio_feed + "/data?X-AIO-Key=" + aio_key)
# 用 POST 上傳 JSON 資料
urequests.post(url, json=data)
# 暫停 2 秒, 避免送出太多資料超過 Adafruit IO 免費額度
time.sleep(2)
啟用成功後,擠出你的淚水滴在正確的板子上,你就會看見雨量變化了。